package main

import (
	"fmt"
	"reflect"
)

func main() {
	test_str()
}

// 字符串
// 英文，每个字符占 1 byte
// 中文，每个字符占 3 byte
// 字符串是以 byte 数组形式保存的,
// 打印时需要用 string 进行类型转换，否则打印的是编码值
func test_str() {
	str1 := "golang"
	str2 := "go中文"
	fmt.Println(reflect.TypeOf(str1))           // golang
	fmt.Println(reflect.TypeOf(str2[2]).Kind()) // uint8 知道某个变量的类型
	fmt.Println(len(str1))                      // 6
	fmt.Println(str1[2], string(str1[2]))       // l08 l
	runeArr := []rune(str2)
	fmt.Println(reflect.TypeOf(runeArr).Kind()) // []uint8
	fmt.Println(runeArr[2], string(runeArr[2])) // 20013  中
	fmt.Println("len(runeArr)：", len(runeArr))  // len(runeArr)： 4
}

// 111
// 1111
// 1111

func test_var() {
	var a int
	var b string = "hello"
	var c = true
	fmt.Println(a, b, c)
	var a1 int8 = 10
	var c1 byte = 'a'
	var b1 float32 = 12.2
	var msg = "Hello World"
	ok := false
	fmt.Println(a1, b1, c1, msg, ok)
}

func test_if() {
	age := 18
	if age < 18 {
		fmt.Printf("Kid")
	} else {
		fmt.Printf("Adult")
	}

	// 可以简写为：
	if age := 18; age < 18 {
		fmt.Printf("Kid")
	} else {
		fmt.Printf("Adult")
	}
}
